package avaliacao.jsp.model;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class Leilao {
	private Map<Integer, Produto> items;
	private static Leilao instance;
	protected Leilao() {
		super();
		items = new HashMap<Integer, Produto>();
	}
	public static Leilao getInstance() {
		if (instance == null) {
			instance = new Leilao();
			instance.fakeInit();
		}
		return instance;
	}
	
	private void fakeInit() {
		items.put(1, new Produto(1, "PlayStation 3", 100.0, null));
		items.put(2, new Produto(2, "XBox 360", 89.0, null));
		items.put(3, new Produto(3, "Barraca de camping 2 lugares", 200.0, null));
		items.put(4, new Produto(4, "iPad 2 32 GB", 450.0, null));
		items.put(5, new Produto(5, "Pen drive 16 GB", 5.5, null));
	}
	
	public Iterator<Produto> getListProdutos() {
		return items.values().iterator();
	}

	public boolean processarLance(int id, double valor, Usuario usr) {
		double lanceMinimo = 0.5d;
		if (items.containsKey(id)) {
			if (items.get(id).getLanceAtual() == null) {
				if (valor >= items.get(id).getLanceInicial()) {
					items.get(id).setLanceAtual(new Lance(usr, valor));
					return true;
				}
			} else if (valor >= items.get(id).getLanceAtual().getValor() + lanceMinimo) {
				items.get(id).setLanceAtual(new Lance(usr, valor));
				return true;
			}
		}
		return false;
	}
}
